package edu.calvin.djs32.cs214.interpreters.height;

import edu.calvin.cs214.hobbes2008.ApplicationTIR;
import edu.calvin.cs214.hobbes2008.HobbesTIR;
import edu.calvin.cs214.hobbes2008.HobbesTIRVisitor;
import edu.calvin.cs214.hobbes2008.IdentifierTIR;
import edu.calvin.cs214.hobbes2008.IfTIR;
import edu.calvin.cs214.hobbes2008.IntegerTIR;
import edu.calvin.cs214.hobbes2008.LetFunctionTIR;
import edu.calvin.cs214.hobbes2008.LetTIR;
import edu.calvin.cs214.hobbes2008.StringTIR;
import edu.calvin.cs214.hobbes2008.TupleTIR;

public class Height implements HobbesTIRVisitor<Integer>{

	public Integer visitApplication(ApplicationTIR application) {
		return null;
	}

	public Integer visitInteger(IntegerTIR integer) {
		return 0;
	}

	public Integer visitString(StringTIR string) {
		return 0;
	}

	public Integer visitTuple(TupleTIR tuple) {
		int height = 1;
		for (HobbesTIR element : tuple) {
			height += element.accept(this);
		}
		return height;
	}

	public Integer visitIf(IfTIR ifExpression) {
		// TODO Auto-generated method stub
		return null;
	}

	public Integer visitIdentifier(IdentifierTIR identifierTIR) {
		// TODO Auto-generated method stub
		return null;
	}

	public Integer visitLet(LetTIR letTIR) {
		// TODO Auto-generated method stub
		return null;
	}

	public Integer visitLetFunction(LetFunctionTIR let) {
		// TODO Auto-generated method stub
		return null;
	}

}
